﻿/*
 *  ============================================================================
 *  Name:           Gestão de parques de estacionamento
 *  Author:         João Faria
 *  Email:          a8836@alunos.ipca.pt
 *                  jfaria.gmr@gmail.com
 *  Version:        0
 *  Date:           2013-04-10
 *  Copyright:       
 *  Description:    IPCA - Programação II
 *                  Projecto final
 *  ============================================================================
 */
using System;

namespace GesParking.Exceptions
{
    /// <summary>
    /// Classe que gere o erro "Utilizador já registado"
    /// </summary>
    public class UserAlreadyParkedException : ApplicationException
    {
        /// <summary>
        /// Construtor da excepção
        /// </summary>
        /// <param name="msg">Mensagem a apresentar quando ocorre o erro</param>
        public UserAlreadyParkedException() : base("O utilizador já esta se encontra registado num parque!") { }
    }

    /// <summary>
    /// Classe que gere o erro "Utilizador não se encontra registado"
    /// </summary>
    public class UserNotFoundInParksException : ApplicationException
    {
        /// <summary>
        /// Construtor da excepção
        /// </summary>
        /// <param name="msg">Mensagem a apresentar quando ocorre o erro</param>
        public UserNotFoundInParksException() : base("O utilizador não se encontra registado em nenhum parque!") { }
    }

    /// <summary>
    /// Classe que gere o erro "Utilizador não se encontra registado neste parque"
    /// </summary>
    public class UserNotFoundInParkException : ApplicationException
    {
        /// <summary>
        /// Construtor da excepção
        /// </summary>
        /// <param name="msg">Mensagem a apresentar quando ocorre o erro</param>
        public UserNotFoundInParkException() : base("O utilizador não se encontra registado neste parque!") { }
    }

    /// <summary>
    /// Classe que gere o erro "Park cheio"
    /// </summary>
    public class ParkFullException : ApplicationException
    {
        /// <summary>
        /// Construtor da excepção
        /// </summary>
        public ParkFullException() : base("O parque está cheio!") { }
    }

    /// <summary>
    /// Classe que gere o erro "Parque não pago"
    /// </summary>
    public class ParkNotPayedException : ApplicationException
    {
        /// <summary>
        /// Construtor da excepção
        /// </summary>
        public ParkNotPayedException() : base("O parqueamento não foi pago!") { }
    }
}
